2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11 * Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #import <Adium/AIObject.h>
19 #define CONTACT_ALERTS_DETAILS_FOR_HEADER_CHANGED @"ContactAlertDetailsForHeaderChanged"
21 @
class AIVariableHeightFlexibleColumnsOutlineView
, AIListObject
, AIAutoScrollView
;
23 @interface ESContactAlertsViewController
: AIObject
{
24 IBOutlet NSView
*view
;
26 IBOutlet AIVariableHeightFlexibleColumnsOutlineView
*outlineView_summary
;
28 NSMutableArray
*contactAlertsEvents
;
29 NSMutableArray
*contactAlertsActions
;
31 NSMutableDictionary
*expandStateDict
;
32 NSMutableDictionary
*requiredHeightDict
;
34 IBOutlet NSButton
*button_add
;
35 IBOutlet NSButton
*button_delete
;
36 IBOutlet NSButton
*button_edit
;
38 AIListObject
*listObject
;
42 BOOL configureForGlobal
;
43 BOOL showEventsInEditSheet
;
45 NSString
*targetEventID
;
48 - (void)configureForListObject
:(AIListObject
*)inObject
;
49 - (void)configureForListObject
:(AIListObject
*)inObject showingAlertsForEventID
:(NSString
*)inTargetEventID
;
51 - (IBAction
)addAlert
:(id
)sender
;
52 - (IBAction
)editAlert
:(id
)sender
;
53 - (IBAction
)deleteAlert
:(id
)sender
;
55 - (void)setDelegate
:(id
)inDelegate
;
58 - (void)setConfigureForGlobal
:(BOOL
)inConfigureForGlobal
;
59 - (void)setShowEventsInEditSheet
:(BOOL
)inShowEventsInEditSheet
;
61 - (void)viewWillClose
;
65 @interface
NSObject (ESContactAlertsViewControllerDelegate
)
67 //Delegate is notified with the new and old alert dictionaries when the user makes a change
68 - (void)contactAlertsViewController
:(ESContactAlertsViewController
*)inController
69 updatedAlert
:(NSDictionary
*)newAlert
70 oldAlert
:(NSDictionary
*)oldAlert
;
72 //Delegate is notified with the deleted dictionary when the user deletes an alert
73 - (void)contactAlertsViewController
:(ESContactAlertsViewController
*)inController
74 deletedAlert
:(NSDictionary
*)deletedAlert
;
77 @interface
NSObject (AIActionHandlerOptionalMethods
)
78 - (void)performPreviewForAlert
:(NSDictionary
*)alert
;